package thread.producer1;

import java.util.LinkedList;

public class Store {

	private static final int MAX_NUM = 10;
	
	LinkedList<Object> list = new LinkedList<Object>();
	
	public void produce(String str){
		if(list.size() == MAX_NUM){
			//仓库已满，阻塞生产
			System.out.println("仓库已满，【"+str+"】： 暂时不能执行生产任务!");
			try {
				list.wait();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		 // 生产产品            
        list.add(new Object());            

        System.out.println("【"+str+"】：生产了一个产品\t【现仓储量为】:" + list.size());

        list.notify();
	}
	
	public void custom(String str){
		if(0 == list.size()){
			//仓库为空，阻塞
			System.out.println("仓库已空，【"+str+"】： 暂时不能执行消费任务!");
			try {
				list.wait();
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
		
		list.pop();
        System.out.println("【"+str+"】：消费了一个产品\t【现仓储量为】:" + list.size());
        list.notify();
	}
}
